package login;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: ws
 * Date: 2023-07-16
 * Time: 14:41
 */
//用来实现登陆时的校验
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1. 先从请求中拿到用户名和密码
        req.setCharacterEncoding("utf-8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        //2. 验证用户名密码
        if (username == null || password == null || username.equals("")) {
            resp.setContentType("text/html;charset=htf-8");
            resp.getWriter().write("当前输入的用户名或密码有误");
            return;
        }
        //此处假定用户名只能是zhangsan或lisi，密码都是123
        //正常的登录逻辑，验证用户名和密码从数据裤读取的
        if (!username.equals("zhangsan") && !username.equals("lisi")) {
            //用户名问题
            resp.setContentType("text/html;charset=htf-8");
            resp.getWriter().write("当前输入的用户名或密码有误");
            return;
        }
        if (!password.equals("123")) {
            //密码问题
            resp.setContentType("text/html;charset=htf-8");
            resp.getWriter().write("当前输入的用户名或密码有误");
            return;
        }
        //3. 验证成功
        //查询会话，没有则允许创建会话，存储到服务器的哈希表，然后将这个会话返回到客户端
        HttpSession session = req.getSession(true);
        //接下来可以让刚刚创建好的session对象存储咱们自定义的数据，就可以在这个对象中存储用户的身份信息
        session.setAttribute("username", username);
        //4.登录成功后，自动跳转主页
        resp.sendRedirect("index");


    }
}
